iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
DevOps

30 天自動化高手養成:玩轉 n8n 工作流系列 第 8

Day 8:RSS Feed 自動轉發到 Discord(使用台灣主流新聞來源)

  • 分享至 

  • xImage
  •  

很多人在看新聞時會追蹤自由時報、中央社、商業周刊等台灣媒體。今天我們就做一個 RSS → Discord 自動轉發工作流,來源用這些常看的媒體,用 Embed 格式讓文章像新聞快訊一樣清楚、美觀。


常見的台灣 RSS Feed 來源範例

以下是幾個台灣比較常被閱讀、且有提供 RSS 的新聞來源:

媒體 RSS 類別 /網址
自由時報(即時新聞) https://news.ltn.com.tw/rss/all.xml (自由時報電子報)
中央社(各分類) 政治 / 國際 / 生活 / 科技 / 等等 (中央社 CNA)
商業周刊 最新網站文章 RSS (商業周刊 - 商周.com)
Digitimes(科技新聞) 技術/科技類相關 RSS (DIGITIMES-首頁)

你可以選一個或多個來源一起用。


建立 Workflow:RSS → Discord 自動轉發(台灣新聞來源)

Step 1:觸發器(Cron Node)

  • Node:Cron
  • 設定:例如每 30 分鐘 或每 小時 檢查 RSS 一次
  • 功能:定時執行抓取新的新聞項目

https://ithelp.ithome.com.tw/upload/images/20250922/20168203v9DtGuYD4S.png


Step 2:抓取 RSS(HTTP Request Node)

  • Node:HTTP Request
  • Method:GET
  • URL:選一個來源,例如自由時報即時新聞 https://news.ltn.com.tw/rss/all.xml
  • 返回的資料是 XML 格式

https://ithelp.ithome.com.tw/upload/images/20250922/20168203xEHENU22W9.png


Step 3:解析 RSS(XML → JSON)

  • Node:XML 解析 Node(n8n 內建或外掛)
  • 把抓到的 XML 轉換成 JSON
  • 從其中拿到 item 陣列,每一篇文章包含 titlelinkdescriptionpubDate 等資訊

https://ithelp.ithome.com.tw/upload/images/20250922/20168203lBhsf2VzRg.png)


Step 4:整理成 Discord Embed(Function Node,限制 5 則)

const items = $json["rss"]["channel"]["item"];
let posts = Array.isArray(items) ? items : [items];

// 限制一次最多發 5 則
posts = posts.slice(0, 5);

return posts.map(post => {
  const desc = post.description 
    ? post.description.replace(/(<([^>]+)>)/gi, "").substring(0, 150) + "…" 
    : "";

  return {
    json: {
      embeds: [
        {
          title: `📰 ${post.title}`,
          url: post.link,
          description: desc,
          color: 3447003,
          footer: { text: "來源:自由時報" },
          timestamp: new Date(post.pubDate).toISOString()
        }
      ]
    }
  };
});

https://ithelp.ithome.com.tw/upload/images/20250922/201682037vyx2iNpkk.png

這樣可以確保 每次最多 5 則新聞,避免洗版。


Step 5:發送到 Discord(HTTP Request Node)

  • Node:HTTP Request
  • Method:POST
  • URL:Discord 的 Webhook URL
  • Body content type:JSON
  • Body JSON:使用上面 Function Node 輸出的資料(Embed 格式)

https://ithelp.ithome.com.tw/upload/images/20250922/20168203CvI9IWCOqS.png


最終流程圖

https://ithelp.ithome.com.tw/upload/images/20250922/201682037LzzASIuDV.png


成果展示

比如你訂自由時報的「即時新聞」,Discord 頻道可能收到像下面這樣的卡片訊息(一次最多 5 則):

https://ithelp.ithome.com.tw/upload/images/20250922/20168203luWN2lj9kQ.png


小結

今天我們用在地又常看的 RSS 來源做了一個:

  • 定時抓新聞(自由時報、中央社、商業周刊等)
  • 解析 XML → JSON
  • 用 Embed 格式整理成 Discord 卡片
  • 限制每次最多 5 則,避免洗版

這樣你的 Discord 就能變成一個新聞快訊中心 !!


上一篇
Day 7:每日天氣通知自動發送到 Discord
下一篇
Day 9:自動將檔案上傳到 Google Drive
系列文
30 天自動化高手養成:玩轉 n8n 工作流12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言